A directed dialogue is a dialogue in which a computer is “directing” a flow of gathering information by asking a user for explicit pieces of data to perform a function. A directed dialogue portal is a collection of directed dialogues. A directed dialogue portal may be used in a construction of the internet in which a directed dialogue connection to a “directed dialogue browser” may function similar to an application server in serving requests for graphical information, services across the internet, etc. A directed dialogue may include a program that receives recorded voice containing, for example, instructions from a user. The program may receive recorded voice containing, for example, instructions from a user. The program may translate the voice instructions into software instructions that operate on a server to produce the user-desired result. In practice, other devices may be used to enter data and direct dialogue flow (e.g., DTMF). A portal may merge these functions (and the process of getting to them) to provide a collection of services or functionality.
To make these directed dialogue portals useful, application developers construct “prompts” to elicit instructions or expected responses from a user. A prompt may indicate what is going to occur next or it may be an objective of the service or application, such as when it contains user-requested information. For example, one type of “prompt-response” interaction allows the user to “navigate” through an application (e.g., service) or collection of applications (commonly referred to as a menu). Thus, a directed dialogue portal application developer may desire a user to say a name of an application or a name of a service, function, or category of services within the application. The developer thus develops the directed dialogue portal application to elicit a selection from a set of potential selections listed for the user.
Application programming for directed dialogue portals may be complicated because each function in an application may be developed separately yet need to interact with other functions. In such cases, a series of voice prompts and appropriate responses may be carefully scripted to ensure that a user is capable of eliciting an appropriate behavior from the application. For example, a voice prompt may request that a user “say or press 1 for Bob, 2 for Bill, or 3 for Sally.” If the user selects 1 for Bob, a subsequent prompt may request the user to make another selection, such as whether the user wants Bob's contact information, place of employment, shoe size, etc. If the user wants Bob's contact information, a subsequent prompt may request the user to select from a list that includes Bob's home phone number, work phone number, e-mail address, home address, etc.
The user may have to go through a long series of prompts to obtain or provide desired information. If the user gets down to selecting Bob's home address, but then realizes that it was Bill's home address that is needed, then the user may need a backup pathway to go back to a preceding place in the selection process where the user may say or press 2 for Bill. Then, the user may listen to identical prompts for Bill that were provided for Bob.
Accommodating user needs to navigate outside of usual directed dialogue flow in a directed dialogue portal system having complex prompt structures may create programming problems. For example, one approach may be to flatten the hierarchical structure of the voice prompt system, allowing for transfers of call flow across branches of a directed dialogue prompt tree (e.g., enabling the user to move from Bob's contact information to Bill's contact information without requiring climbing back up the tree to the prompt that provides the choice of selecting 2 for Bill). To implement such an approach, however, typical natural language speech assistant architecture, for example, may require that the programmer update dialogue states throughout associated applications to add references to a dynamic grammar that could then be filled in at run-time with appropriate words.
Therefore, there is a need for directed dialogue portal system applications that enable users to call services, functions, or categories of services from within other services, functions, or categories without requiring the user to back out through previous selections to a branch of selections leading to the desired options. There is a need for such portals to be developed without requiring updating dialog states throughout associated applications to add references to a dynamic grammar.